ν¬κ΄μ μΈ λ¦¬μμ€ λ‘λ© μ λ΅μΌλ‘ μΉμ¬μ΄νΈ μ±λ₯μ μ΅μ ννκ³ μ μΈκ³ μ¬μ©μμ κ²½νμ ν₯μμν€μΈμ. μλ, μ κ·Όμ±, SEOλ₯Ό κ°μ νλ λ°©λ²μ μμ보μΈμ.
μΉ μ±λ₯: κΈλ‘λ² μ¬μ©μλ₯Ό μν 리μμ€ λ‘λ© μ λ΅
μ€λλ λΉ λ₯΄κ² λ³ννλ λμ§νΈ μΈμμμ μΉ μ±λ₯μ 무μλ³΄λ€ μ€μν©λλ€. μ¬μ©μλ€μ μμ μ μμΉ, κΈ°κΈ°, λ€νΈμν¬ μ°κ²° μνμ κ΄κ³μμ΄ μΉμ¬μ΄νΈκ° μ¦μ λ‘λλκΈ°λ₯Ό κΈ°λν©λλ€. λ‘λ©μ΄ λλ¦° μΉμ¬μ΄νΈλ λμ μ΄νλ₯ , μ νμ¨ κ°μλ‘ μ΄μ΄μ Έ κΆκ·Ήμ μΌλ‘ λΉμ¦λμ€μ λΆμ μ μΈ μν₯μ λ―ΈμΉ μ μμ΅λλ€. μ΄ μ’ ν© κ°μ΄λμμλ λ€μν 리μμ€ λ‘λ© μ λ΅μ μ΄ν΄λ³΄κ³ , μΉμ¬μ΄νΈ μ±λ₯μ μ΅μ ννκ³ μ μΈκ³ μ¬μ©μμκ² μ°μν μ¬μ©μ κ²½νμ μ 곡νλ λ° λμμ΄ λλ μ€ν κ°λ₯ν ν΅μ°°λ ₯κ³Ό μ€μ μ¬λ‘λ₯Ό μ 곡ν©λλ€.
μΉ μ±λ₯μ΄ μ μΈκ³μ μΌλ‘ μ€μν μ΄μ
μΉ μ±λ₯μ μ€μμ±μ λ¨μν λ―Έμ μΈ λΆλΆμ λμ΄μλλ€. λ€μκ³Ό κ°μ μ£Όμ μ§νμ μ§μ μ μΈ μν₯μ λ―ΈμΉ©λλ€:
- μ¬μ©μ κ²½ν(UX): λΉ λ₯΄κ² λ‘λλλ μΉμ¬μ΄νΈλ μννκ³ λ§€λ ₯μ μΈ κ²½νμ μ 곡νμ¬ μ¬μ©μ λ§μ‘±λμ μΆ©μ±λλ₯Ό λμ λλ€. λμΏμ μλ μ¬μ©μλ λ°λμ΄λ λΆμλ Έμ€μμ΄λ μ€μ μλ μ¬μ©μμ λμΌν κ²½νμ ν΄μΌ ν©λλ€.
- κ²μ μμ§ μ΅μ ν(SEO): Googleκ³Ό κ°μ κ²μ μμ§μ κ²μ μμμμ λ‘λ©μ΄ λΉ λ₯Έ μΉμ¬μ΄νΈλ₯Ό μ°μ μν©λλ€. μ΄λ λ λμ κ°μμ±κ³Ό μμ°μ€λ¬μ΄ νΈλν½μΌλ‘ μ΄μ΄μ§λλ€.
- μ νμ¨: λλ¦° λ‘λ© μκ°μ μ¬μ©μκ° κ΅¬λ§€λ μμ μμ±κ³Ό κ°μ μνλ νλμ μλ£νλ κ²μ λ°©ν΄ν μ μμ΅λλ€.
- μ κ·Όμ±: μ±λ₯ μ΅μ νλ μ’ μ’ μ κ·Όμ± ν₯μμΌλ‘ μ΄μ΄μ Έ, μ₯μ κ° μλ μ¬μ©μλ₯Ό ν¬ν¨ν λͺ¨λ μ¬λμ΄ μΉμ¬μ΄νΈλ₯Ό μ¬μ©ν μ μλλ‘ λ³΄μ₯ν©λλ€. μΈν°λ· μ μμ΄ μ νλ μ§μμ μ¬μ©μλ κ³ λ €ν΄μΌ ν©λλ€.
- λͺ¨λ°μΌ μ°μ μλ: μ μΈκ³ μΈν°λ· νΈλν½μ μλΉ λΆλΆμ΄ λͺ¨λ°μΌ κΈ°κΈ°μμ λ°μνλ―λ‘, λͺ¨λ°μΌ μ±λ₯ μ΅μ νλ λ§€μ° μ€μν©λλ€.
ν΅μ¬ λ λλ§ κ²½λ‘ μ΄ν΄νκΈ°
ꡬ체μ μΈ μ λ΅μ μ΄ν΄λ³΄κΈ° μ μ ν΅μ¬ λ λλ§ κ²½λ‘λ₯Ό μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. μ΄λ λΈλΌμ°μ κ° HTML, CSS, JavaScriptλ₯Ό λ λλ§λ μΉ νμ΄μ§λ‘ λ³ννλ μΌλ ¨μ λ¨κ³μ λλ€. μ΄ κ²½λ‘λ₯Ό μ΅μ ννλ κ²μ΄ νμ΄μ§ λ‘λ μκ°μ κ°μ νλ ν΅μ¬μ λλ€.
ν΅μ¬ λ λλ§ κ²½λ‘λ μΌλ°μ μΌλ‘ λ€μ λ¨κ³λ₯Ό ν¬ν¨ν©λλ€:
- HTML νμ±: λΈλΌμ°μ λ HTMLμ νμ±νμ¬ λ¬Έμ κ°μ²΄ λͺ¨λΈ(DOM) νΈλ¦¬λ₯Ό ꡬμΆν©λλ€.
- CSS νμ±: λΈλΌμ°μ λ CSSλ₯Ό νμ±νμ¬ CSS κ°μ²΄ λͺ¨λΈ(CSSOM) νΈλ¦¬λ₯Ό ꡬμΆν©λλ€.
- DOMκ³Ό CSSOM κ²°ν©: λΈλΌμ°μ λ DOMκ³Ό CSSOM νΈλ¦¬λ₯Ό κ²°ν©νμ¬ νμ΄μ§μ μκ°μ μμλ₯Ό λνλ΄λ λ λ νΈλ¦¬λ₯Ό μμ±ν©λλ€.
- λ μ΄μμ: λΈλΌμ°μ λ λ λ νΈλ¦¬μ κ° μμμ μμΉμ ν¬κΈ°λ₯Ό κ³μ°ν©λλ€.
- νμΈνΈ: λΈλΌμ°μ λ ν½μ μ μ±μ νλ©΄μ μκ°μ μμλ₯Ό λ λλ§ν©λλ€.
κ° λ¨κ³μλ μκ°μ΄ 걸립λλ€. 리μμ€ λ‘λ© μ λ΅μ λͺ©νλ κ° λ¨κ³μ νμ΄λ°μ μ΅μ ννμ¬ κ°μ₯ μ€μν 리μμ€κ° λ¨Όμ λ‘λλκ³ λ λλ§ νλ‘μΈμ€κ° μ΅λν ν¨μ¨μ μΌλ‘ μ΄λ£¨μ΄μ§λλ‘ νλ κ²μ λλ€.
리μμ€ λ‘λ© μ λ΅: μ¬μΈ΅ λΆμ
1. μ€μ 리μμ€ μ°μ μμ μ§μ
ν¨κ³Όμ μΈ μΉ μ±λ₯μ κΈ°μ΄λ νμ΄μ§μ μ΄κΈ° λ λλ§μ νμμ μΈ λ¦¬μμ€λ₯Ό μλ³νκ³ μ°μ μμλ₯Ό μ§μ νλ κ²μ λλ€. μ΄λ μ¬μ©μμκ² μ¦μ 보μ΄λ μ½ν μΈ (above the fold)κ° λ¬΄μμΈμ§ κ²°μ νκ³ ν΄λΉ 리μμ€κ° μ μνκ² λ‘λλλλ‘ νλ κ²μ ν¬ν¨ν©λλ€.
- μ€μ CSS μΈλΌμ΄λ: νμ΄μ§ μλ¨ μ½ν
μΈ μ νμν CSSλ₯Ό HTML λ¬Έμμ
<head>μ μλ<style>νκ·Έ λ΄μ μ§μ λ°°μΉν©λλ€. μ΄λ κ² νλ©΄ CSSμ λν μΆκ°μ μΈ HTTP μμ²μ΄ μ κ±°λ©λλ€. - μ€μνμ§ μμ CSS μ§μ° λ‘λ©:
<link rel="stylesheet" href="...">νκ·Έμmedia="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="..."></noscript>κΈ°λ²μ μ¬μ©νμ¬ λλ¨Έμ§ CSSλ₯Ό λΉλκΈ°μ μΌλ‘ λ‘λν©λλ€. μ΄λ κ² νλ©΄ κΈ°λ³Έ μ½ν μΈ κ° λ¨Όμ λ‘λλκ³ μ΄κΈ° λ λλ§ νμ μ€νμΌμ΄ μ μ©λ©λλ€. - JavaScript λΉλκΈ°(Async) λλ μ§μ°(Defer) λ‘λ©:
<script>νκ·Έμasyncλλdeferμμ±μ μ¬μ©νμ¬ JavaScriptκ° HTML νμ±μ μ°¨λ¨νλ κ²μ λ°©μ§ν©λλ€.asyncμμ±μ μ€ν¬λ¦½νΈλ₯Ό λΉλκΈ°μ μΌλ‘ λ€μ΄λ‘λνκ³ μ€νν©λλ€.deferμμ±μ μ€ν¬λ¦½νΈλ₯Ό λΉλκΈ°μ μΌλ‘ λ€μ΄λ‘λνμ§λ§ HTMLμ΄ νμ±λ νμ μ€νν©λλ€. μΌλ°μ μΌλ‘ DOMμ μμ‘΄νλ μ€ν¬λ¦½νΈμλ deferκ° μ νΈλ©λλ€.
2. μ΄λ―Έμ§ μ΅μ ν
μ΄λ―Έμ§λ μ’ μ’ μΉνμ΄μ§ ν¬κΈ°μ μλΉ λΆλΆμ μ°¨μ§ν©λλ€. μ΄λ―Έμ§λ₯Ό μ΅μ ννλ κ²μ μ±λ₯ ν₯μμ λ§€μ° μ€μν©λλ€. μ΄λ νΉν λμ΄ μ§μμ΄λ λμνμ΄ μ νλ κ΅κ°μ μ¬μ©μμ κ°μ΄ λλ¦° μ°κ²°μ μ¬μ©νλ μ¬μ©μμκ² μ€μν©λλ€.
- μ΄λ―Έμ§ μμΆ: μ΄λ―Έμ§ μμΆ λꡬ(μ: TinyPNG, ImageOptim λλ μ¨λΌμΈ λꡬ)λ₯Ό μ¬μ©νμ¬ νμ§ μμ€ μμ΄ νμΌ ν¬κΈ°λ₯Ό μ€μ λλ€. κ·Έλν½ λ° μμ΄μ½μλ 무μμ€ μμΆμ μ¬μ©νλ κ²μ κ³ λ €νμΈμ.
- μ¬λ°λ₯Έ μ΄λ―Έμ§ νμ μ ν: μ½ν μΈ μ λ°λΌ μ μ ν μ΄λ―Έμ§ νμμ μ νν©λλ€. μΌλ°μ μΌλ‘ μ¬μ§μλ JPEG, ν¬λͺ λκ° μλ κ·Έλν½μλ PNG, μ°μν μμΆλ₯ μ μ 곡νλ μ΅μ νμμλ WebPκ° μ ν©ν©λλ€.
- λ°μν μ΄λ―Έμ§(srcset λ° sizes):
<img>νκ·Έμsrcsetλ°sizesμμ±μ μ¬μ©νμ¬ λ€μν νλ©΄ ν¬κΈ°μ λ§λ λ€λ₯Έ λ²μ μ μ΄λ―Έμ§λ₯Ό μ 곡ν©λλ€. μ΄λ κ² νλ©΄ μ¬μ©μλ μμ μ κΈ°κΈ°μ μ΅μ νλ μ΄λ―Έμ§λ₯Ό λ°κ² λ©λλ€. μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ΅λλ€:<img src="image-small.jpg" srcset="image-small.jpg 480w, image-medium.jpg 768w, image-large.jpg 1200w" sizes="(max-width: 480px) 100vw, (max-width: 768px) 50vw, 33vw" alt="μμ μ΄λ―Έμ§"> - μ΄λ―Έμ§ μ§μ° λ‘λ©: μ§μ° λ‘λ©μ ꡬννμ¬ μ΄λ―Έμ§κ° λ·°ν¬νΈμ λ³΄μΌ λλ§ λ‘λν©λλ€. μ΄λ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ ν¬κ² μ€μ¬μ€λλ€. λ§μ JavaScript λΌμ΄λΈλ¬λ¦¬μ λ€μ΄ν°λΈ λΈλΌμ°μ μ§μ(
loading="lazy")μ μ¬μ©ν μ μμ΅λλ€. - μ΄λ―Έμ§ CDN μ¬μ©: μ΄λ―Έμ§μ μ½ν μΈ μ μ‘ λ€νΈμν¬(CDN)λ₯Ό νμ©ν©λλ€. CDNμ μ μΈκ³μ λΆμ°λ μλ²μ μ΄λ―Έμ§λ₯Ό μ μ₯νμ¬ μ¬μ©μμ μμΉμ κ΄κ³μμ΄ μ΄λ―Έμ§λ₯Ό λ λΉ λ₯΄κ² μ λ¬ν©λλ€.
3. μ€μνμ§ μμ 리μμ€ μ§μ° λ‘λ©
μ§μ° λ‘λ©μ νμν λκΉμ§ μ€μνμ§ μμ 리μμ€μ λ‘λ©μ μ°κΈ°νλ κΈ°μ μ λλ€. μ΄λ μ΄κΈ° λ λλ§μ νμμ μ΄μ§ μμ μ΄λ―Έμ§, λΉλμ€ λ° JavaScript μ½λμ μ μ©λ©λλ€. μ΄λ μ΄κΈ° νμ΄μ§ λ‘λ μκ°μ ν¬κ² κ°μ νμ¬ λ λμ μ¬μ©μ κ²½νμ μ 곡ν©λλ€.
- μ΄λ―Έμ§ μ§μ° λ‘λ© (μμμ λ€λ£Έ): `loading="lazy"` μμ± λλ λΌμ΄λΈλ¬λ¦¬ μ¬μ©.
- λΉλμ€ μ§μ° λ‘λ©: μ¬μ©μκ° ν΄λΉ μΉμ μΌλ‘ μ€ν¬λ‘€ν λλ§ λΉλμ€ μ½ν μΈ λ₯Ό λ‘λν©λλ€.
- JavaScript μ§μ° λ‘λ©: μ€μνμ§ μμ JavaScript μ½λ(μ: λΆμ μ€ν¬λ¦½νΈ, μμ λ―Έλμ΄ μμ ―)λ νμ΄μ§ λ‘λ©μ΄ μλ£λ ν λλ μ¬μ©μκ° νΉμ μμμ μνΈ μμ©ν λλ§ λ‘λν©λλ€.
4. ν리λ‘λ©(Preloading)κ³Ό ν리컀λ₯ν (Preconnecting)
ν리λ‘λ©κ³Ό ν리컀λ₯ν μ λΈλΌμ°μ κ° λ¦¬μμ€λ₯Ό λ μΌμ° λ°κ²¬νκ³ λ‘λνμ¬ λ‘λ© μκ°μ κ°μ νλ λ° λμμ΄ λλ κΈ°μ μ λλ€. μ΄λ 리μμ€κ° λͺ μμ μΌλ‘ μμ²λκΈ° μ μ μ¬μ μ κ°μ Έμ€κ±°λ μ°κ²°ν©λλ€.
- ν리λ‘λ(Preload):
<link rel="preload">νκ·Έλ₯Ό μ¬μ©νμ¬ λμ€μ νμν νΉμ 리μμ€(μ: κΈκΌ΄, μ΄λ―Έμ§, μ€ν¬λ¦½νΈ)λ₯Ό 미리 λ‘λνλλ‘ λΈλΌμ°μ μ μ§μν©λλ€. μ:<link rel="preload" as="font" href="myfont.woff2" crossorigin> - ν리컀λ₯νΈ(Preconnect):
<link rel="preconnect">νκ·Έλ₯Ό μ¬μ©νμ¬ DNS μ‘°ν, TCP νΈλμ °μ΄ν¬, TLS νμμ ν¬ν¨νμ¬ μλ²μ λν μ‘°κΈ° μ°κ²°μ μ€μ ν©λλ€. μ΄λ ν΄λΉ μλ²μμ 리μμ€λ₯Ό λ‘λνλ λ° κ±Έλ¦¬λ μκ°μ ν¬κ² μ€μΌ μ μμ΅λλ€. μ:<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>μ΄λ κ΅¬κΈ ν°νΈμ κ°μ 리μμ€λ₯Ό λ 빨리 λ‘λνλ λ° λμμ΄ λ©λλ€.
5. μΆμ(Minification) λ° μμΆ
μΆμ λ° μμΆμ μ½λ(HTML, CSS, JavaScript) λ° κΈ°ν μμ°μ ν¬κΈ°λ₯Ό μ€μ¬ λ€μ΄λ‘λ μκ°μ λ¨μΆμν΅λλ€. μ΄λ¬ν κΈ°μ μ μ μΈκ³μ μΌλ‘ ν¨κ³Όμ μ λλ€.
- μΆμ(Minification): μ½λμμ λΆνμν λ¬Έμ(곡백, μ£Όμ)λ₯Ό μ κ±°νμ¬ νμΌ ν¬κΈ°λ₯Ό μ€μ λλ€. HTML, CSS λ° JavaScriptμ λν μΆμ λꡬ(μ: UglifyJS, cssnano)λ₯Ό μ¬μ©νμμμ€.
- Gzip μμΆ: μΉ μλ²μμ gzip μμΆμ νμ±ννμ¬ νμΌμ μ¬μ©μ λΈλΌμ°μ λ‘ λ³΄λ΄κΈ° μ μ μμΆν©λλ€. μ΄λ κ² νλ©΄ ν μ€νΈ κΈ°λ° νμΌ(HTML, CSS, JavaScript)μ ν¬κΈ°κ° ν¬κ² μ€μ΄λλλ€. λλΆλΆμ μΉ μλ²λ κΈ°λ³Έμ μΌλ‘ gzip μμΆμ΄ νμ±νλμ΄ μμ§λ§ λ€μ νμΈνλ κ²μ΄ μ’μ΅λλ€.
- Brotli μμΆ: νμΌ ν¬κΈ°λ₯Ό ν¨μ¬ λ μ€μ΄λ €λ©΄ gzipλ³΄λ€ λ νλμ μ΄κ³ ν¨μ¨μ μΈ μμΆ μκ³ λ¦¬μ¦μΈ Brotli μμΆμ μ¬μ©νλ κ²μ κ³ λ €νμμμ€. Brotliλ λλΆλΆμ μ΅μ λΈλΌμ°μ μμ μ§μλ©λλ€.
6. μ½λ λΆν λ° λ²λ€ μ΅μ ν
μ½λ λΆν λ° λ²λ€ μ΅μ νλ λΈλΌμ°μ μμ λ€μ΄λ‘λνκ³ νμ±ν΄μΌ νλ JavaScript μ½λμ μμ μ€μ΄λ λ° νμμ μ λλ€. μ΄λ νΉν 볡μ‘ν μΉ μ ν리μΌμ΄μ μ μ€μν©λλ€.
- μ½λ λΆν : JavaScript μ½λλ₯Ό λ μκ³ κ΄λ¦¬νκΈ° μ¬μ΄ μ²ν¬λ‘ λλλλ€. μ΄λ₯Ό ν΅ν΄ λΈλΌμ°μ λ νΉμ νμ΄μ§λ κΈ°λ₯μ νμν μ½λλ§ λ‘λν μ μμ΅λλ€. Webpack λ° κΈ°ν λ²λ€λ¬λ μ΄λ₯Ό κΈ°λ³Έμ μΌλ‘ μ§μν©λλ€.
- λ²λ€ μ΅μ ν: λ²λ€λ¬(μ: Webpack, Parcel, Rollup)λ₯Ό μ¬μ©νμ¬ νΈλ¦¬ μμ΄νΉ(μ¬μ©νμ§ μλ μ½λ μ κ±°), λ°λ μ½λ μ κ±° λ° μΆμλ₯Ό ν¬ν¨νμ¬ μ½λ λ²λ€μ μ΅μ νν©λλ€.
7. HTTP/2 λ° HTTP/3 νμ©
HTTP/2μ HTTP/3λ HTTP/1.1μ λΉν΄ μΉ μ±λ₯μ ν¬κ² ν₯μμν€λ μ΅μ μΉ νλ‘ν μ½μ λλ€. λ νλ‘ν μ½ λͺ¨λ μΉ λΈλΌμ°μ κ° μΉ μλ²λ‘λΆν° λ°μ΄ν°λ₯Ό μμ²νκ³ μμ νλ λ°©μμ μ΅μ ννλλ‘ μ€κ³λμμ΅λλ€. μ μΈκ³μ μΌλ‘ μ§μλλ©° λͺ¨λ μΉμ¬μ΄νΈμ μ μ©ν©λλ€.
- HTTP/2: λ©ν°νλ μ±(λ¨μΌ μ°κ²°μ ν΅ν μ¬λ¬ μμ²), ν€λ μμΆ λ° μλ² νΈμλ₯Ό νμ©νμ¬ νμ΄μ§ λ‘λ μκ°μ λ¨μΆμν΅λλ€.
- HTTP/3: QUIC νλ‘ν μ½μ μ¬μ©νμ¬ νΉν μ λ’°ν μ μλ λ€νΈμν¬μμ μλμ μμ μ±μ ν₯μμν΅λλ€. κ°μ λ νΌμ‘ μ μ΄ λ° κ°μλ λκΈ° μκ°μ μ 곡ν©λλ€.
- ꡬν: λλΆλΆμ μ΅μ μΉ μλ²(μ: Apache, Nginx) λ° CDNμ HTTP/2 λ° HTTP/3λ₯Ό μ§μν©λλ€. μλ²κ° μ΄λ¬ν νλ‘ν μ½μ μ¬μ©νλλ‘ κ΅¬μ±λμλμ§ νμΈνμμμ€. WebPageTest.orgμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ μΉμ¬μ΄νΈμ μ±λ₯μ νμΈνμ¬ λ‘λ μκ°μ μ΄λ€ μν₯μ λ―ΈμΉλμ§ νμΈνμμμ€.
8. μΊμ± μ λ΅
μΊμ±μ μμ£Ό μ‘μΈμ€νλ 리μμ€μ 볡μ¬λ³Έμ μ μ₯νμ¬ λΈλΌμ°μ κ° μλ²μμ λ€μ λ€μ΄λ‘λνλ λμ λ‘컬μμ κ²μν μ μλλ‘ ν©λλ€. μΊμ±μ μ¬λ°©λ¬Έμμ λ‘λ© μκ°μ νκΈ°μ μΌλ‘ ν₯μμν΅λλ€.
- λΈλΌμ°μ μΊμ±: μΉ μλ²λ₯Ό ꡬμ±νμ¬ μ μ ν μΊμ ν€λ(μ:
Cache-Control,Expires)λ₯Ό μ€μ νμ¬ λΈλΌμ°μ μ 리μμ€λ₯Ό μΊμνλλ‘ μ§μν©λλ€. - CDN μΊμ±: CDNμ μ μΈκ³μ λΆμ°λ μλ²μ μΉμ¬μ΄νΈμ μ½ν μΈ λ₯Ό μΊμνμ¬ μ¬μ©μμκ² κ°μ₯ κ°κΉμ΄ μλ²μμ μ½ν μΈ λ₯Ό μ λ¬ν©λλ€.
- μλΉμ€ μ컀: μλΉμ€ μ컀λ₯Ό μ¬μ©νμ¬ μμ°μ μΊμνκ³ μμ²μ μ²λ¦¬νμ¬ μ€νλΌμΈ κΈ°λ₯μ νμ±ννκ³ μ±λ₯μ ν₯μμν΅λλ€. μλΉμ€ μ컀λ μΈν°λ· μ°κ²°μ΄ κ°νμ μ΄κ±°λ μ λ’°ν μ μλ μ§μμμ νΉν μ μ©ν μ μμ΅λλ€.
9. μ¬λ°λ₯Έ νΈμ€ν μ 곡μ 체 μ ν
νΈμ€ν μ 곡μ 체λ μΉ μ±λ₯μ μ€μν μν μ ν©λλ€. κΈλ‘λ² μλ² λ€νΈμν¬λ₯Ό κ°μΆ μ λ’°ν μ μλ μ 곡μ 체λ₯Ό μ ννλ©΄ νΉν κΈλ‘λ² κ³ κ°μ λμμΌλ‘ νλ μΉμ¬μ΄νΈμ λ‘λ© μκ°μ ν¬κ² κ°μ ν μ μμ΅λλ€. λ€μκ³Ό κ°μ κΈ°λ₯μ μ°ΎμΌμμμ€:
- μλ² μμΉ: λμ κ³ κ°κ³Ό κ°κΉμ΄ κ³³μ μλ²κ° μλ μ 곡μ 체λ₯Ό μ ννμμμ€.
- μλ² μλ΅ μκ°: λ€λ₯Έ μ 곡μ 체μ μλ² μλ΅ μκ°μ μΈ‘μ νκ³ λΉκ΅νμμμ€.
- λμν λ° μ μ₯ 곡κ°: μ 곡μ μ²΄κ° μΉμ¬μ΄νΈμ μꡬμ λ§λ μΆ©λΆν λμνκ³Ό μ μ₯ 곡κ°μ μ 곡νλμ§ νμΈνμμμ€.
- νμ₯μ±: μ¦κ°νλ νΈλν½ λ° λ¦¬μμ€ μꡬ μ¬νμ μμ©ν μ μλλ‘ νμ₯ν μ μλ μ 곡μ 체λ₯Ό μ ννμμμ€.
- CDN ν΅ν©: μΌλΆ μ 곡μ 체λ ν΅ν© CDN μλΉμ€λ₯Ό μ 곡νμ¬ μ½ν μΈ μ μ‘μ λ¨μνν©λλ€.
10. λͺ¨λν°λ§ λ° ν μ€νΈ
μ κΈ°μ μΌλ‘ μΉμ¬μ΄νΈμ μ±λ₯μ λͺ¨λν°λ§νκ³ ν μ€νΈνμ¬ κ°μ ν λΆλΆμ νμ νμμμ€. μ΄ μ§μμ μΈ νλ‘μΈμ€λ μ΅μ μ λ‘λ© μκ°μ μ μ§νλ λ° μ€μν©λλ€.
- μ±λ₯ λͺ¨λν°λ§ λꡬ: Google PageSpeed Insights, GTmetrix, WebPageTest.org, Lighthouseμ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ μΉμ¬μ΄νΈμ μ±λ₯μ λΆμνκ³ μ μ¬μ μΈ λ³λͺ© νμμ μλ³νμμμ€.
- μ€μ μ¬μ©μ λͺ¨λν°λ§(RUM): RUMμ ꡬννμ¬ μ€μ μ¬μ©μκ° κ²½ννλ μΉμ¬μ΄νΈμ μ±λ₯μ μ€μκ°μΌλ‘ μΆμ νμμμ€. μ΄λ ν©μ± ν μ€νΈλ₯Ό ν΅ν΄ λͺ ννκ² λλ¬λμ§ μμ μ μλ μ±λ₯ λ¬Έμ μ λν κ·μ€ν ν΅μ°°λ ₯μ μ 곡ν©λλ€.
- A/B ν μ€νΈ: A/B ν μ€νΈλ₯Ό μννμ¬ λ€μν μ΅μ ν μ λ΅μ μ±λ₯μ λΉκ΅νκ³ κ°μ₯ ν¨κ³Όμ μΈ μ루μ μ μλ³νμμμ€.
- μ κΈ°μ μΈ κ°μ¬: μ κΈ°μ μΈ μ±λ₯ κ°μ¬λ₯Ό μμ½νμ¬ μΉμ¬μ΄νΈμ μ±λ₯μ νκ°νκ³ λͺ©νλ₯Ό μΆ©μ‘±νλμ§ νμΈνμμμ€. μ¬κΈ°μλ μ΄λ―Έμ§, μ€ν¬λ¦½νΈ λ° κΈ°ν 리μμ€λ₯Ό μ¬νκ°νλ κ²μ΄ ν¬ν¨λ©λλ€.
κΈλ‘λ² μ¬λ‘ λ° κ³ λ €μ¬ν
μΉ μ±λ₯ κ³ λ €μ¬νμ λμ κ³ κ°μ μ§λ¦¬μ μμΉμ λ°λΌ λ€λ¦ λλ€. λ€μμ κ³ λ €νμμμ€:
- λ€νΈμν¬ μ‘°κ±΄: μ¬λ¬ κ΅κ°μ μ¬μ©μλ μΈν°λ· μλμ λ€νΈμν¬ μμ μ±μ΄ λ€λ¦ λλ€. μν리카λ λ¨λ―Έ μΌλΆ μ§μμμ νν λ³Ό μ μλ κ²κ³Ό κ°μ λλ¦° μ°κ²°μ μ΅μ ννμμμ€.
- κΈ°κΈ° λ€μμ±: μ¬μ©μλ κ³ κΈ μ€λ§νΈν°μμ ꡬν μ»΄ν¨ν°μ μ΄λ₯΄κΈ°κΉμ§ λ€μν κΈ°κΈ°λ₯Ό μ¬μ©νμ¬ μΉμ μ‘μΈμ€ν©λλ€. μΉμ¬μ΄νΈκ° λ°μνμ΄λ©° λͺ¨λ κΈ°κΈ°μμ μ μλνλμ§ νμΈνμμμ€.
- λ¬Ένμ μμΈ: μΉμ¬μ΄νΈ λμμΈκ³Ό μ½ν μΈ λ λ¬Ένμ μΌλ‘ λ―Όκ°νκ³ νμ§νλμ΄μΌ ν©λλ€. λ€λ₯Έ λ¬ΈνκΆμμ λΆμΎνκ±°λ μ€ν΄λ₯Ό μ΄ μ μλ μΈμ΄λ μ΄λ―Έμ§λ₯Ό μ¬μ©νμ§ λ§μμμ€. νμ§ μΈμ΄μ λ¬Έμ μΈνΈ(UTF-8)λ₯Ό κ³ λ €νμμμ€.
- μ κ·Όμ± κ·μ : μ κ·Όμ± μ§μΉ¨(μ: WCAG)μ μ€μνμ¬ μμΉμ κ΄κ³μμ΄ μ₯μ κ° μλ μ¬μ©μκ° μΉμ¬μ΄νΈμ μ‘μΈμ€ν μ μλλ‘ νμμμ€. μ΄λ μ μΈκ³ μ¬μ©μμκ² ννμ μ€λλ€.
- μ½ν μΈ μ μ‘ λ€νΈμν¬(CDN) λ° μ§μλ³ λ°°ν¬: CDN μ 곡μ μ²΄κ° μ¬μ©μκ° μ§μ€λ μ§μμ μλ²λ₯Ό λμ΄ κΈλ‘λ² μ μ§λ₯Ό μ 곡νλμ§ νμΈνμμμ€. μ£Ό μ¬μ©μκ° μ λ½μ μλ κ²½μ° ν΄λΉ μ§μμ μλ²κ° μλμ§ νμΈνμμμ€. λλ¨μμμ μ¬μ©μμ κ²½μ° μ±κ°ν¬λ₯΄ λ° μΈλμ κ°μ κ΅κ°μ μλ²κ° μλ CDNμ μ§μ€νμμμ€.
- λ°μ΄ν° κ°μΈ μ 보 λ³΄νΈ κ·μ : λ°μ΄ν° κ°μΈ μ 보 λ³΄νΈ κ·μ (μ: GDPR, CCPA)κ³Ό μ΄κ²μ΄ μΉμ¬μ΄νΈμ μ±λ₯ λ° μ¬μ©μ κ²½νμ λ―ΈμΉλ μν₯μ λν΄ μΈμ§νμμμ€. λ‘λ©μ΄ λλ¦° μ¬μ΄νΈλ μ¬μ©μ μ λ’°μ μν₯μ μ€ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λΈλΌμ§ μ¬μ©μλ₯Ό λμμΌλ‘ νλ μ μμκ±°λ μΉμ¬μ΄νΈμ κ²½μ°λ₯Ό μκ°ν΄ λ³΄κ² μ΅λλ€. μ΄λ―Έμ§λ WebP νμμ μ¬μ©νμ¬ μ΅μ νλ κ²μ λλ€. μΉμ¬μ΄νΈλ ν¬λ₯΄ν¬κ°μ΄λ₯Ό μ°μ μ μΌλ‘ μ 곡νκ³ νμ§ κ²°μ μ΅μ μ μ 곡ν κ²μ λλ€. μνμΈλ£¨μ μλ CDNμ μ΄λ―Έμ§ λ° λΉλμ€ μ μ‘μ ν¬κ² μμ‘΄νκ² λ κ²μ λλ€.
μ€ν κ°λ₯ν ν΅μ°°λ ₯ λ° λͺ¨λ² μ¬λ‘
μΉμ¬μ΄νΈ μ±λ₯μ κ°μ νκΈ° μν΄ μ·¨ν μ μλ λͺ κ°μ§ μ€ν κ°λ₯ν λ¨κ³λ λ€μκ³Ό κ°μ΅λλ€:
- μΉμ¬μ΄νΈ κ°μ¬ μ€μ: μ±λ₯ ν μ€νΈ λꡬλ₯Ό μ¬μ©νμ¬ μΉμ¬μ΄νΈμ νμ¬ μ±λ₯ λ³λͺ© νμμ νμ νμμμ€.
- μ΅μ ν μ°μ μμ μ§μ : μ΄λ―Έμ§ μ΅μ ν, μ§μ° λ‘λ©, μΆμμ κ°μ΄ κ°μ₯ μν₯λ ₯ μλ μ΅μ ν μ λ΅μ μ§μ€νμμμ€.
- μ κΈ°μ μΈ ν μ€νΈ λ° λͺ¨λν°λ§: μΉμ¬μ΄νΈμ μ±λ₯μ μ§μμ μΌλ‘ λͺ¨λν°λ§νκ³ νμμ λ°λΌ μ‘°μ νμμμ€.
- μ΅μ μ 보 μ μ§: μ΅μ μΉ μ±λ₯ λͺ¨λ² μ¬λ‘ λ° κΈ°μ μ λν μ΅μ μ 보λ₯Ό μ μ§νμμμ€. μΉμ λμμμ΄ μ§ννκ³ μμ΅λλ€.
- μ¬μ©μ κ²½νμ μ§μ€: μ΅μ ν κ²°μ μ λ΄λ¦΄ λ νμ μ¬μ©μ κ²½νμ μ°μ μνμμμ€.
- λ€μν κΈ°κΈ° λ° λΈλΌμ°μ μμ ν μ€νΈ: μΉμ¬μ΄νΈκ° λ€μν κΈ°κΈ° λ° λΈλΌμ°μ μμ μ μλνλμ§ νμΈνμμμ€.
- λͺ¨λ°μΌ μ°μ μ΅μ ν: μ μΈκ³μ μΌλ‘ λͺ¨λ°μΌ μΈν°λ· νΈλν½μ΄ μ¦κ°ν¨μ λ°λΌ λͺ¨λ°μΌ μ±λ₯μ μ°μ μνλ κ²μ΄ μ€μν©λλ€.
κ²°λ‘
μΉ μ±λ₯ μ΅μ νλ μ μ€ν κ³ν, ꡬν λ° λͺ¨λν°λ§μ΄ νμν μ§μμ μΈ νλ‘μΈμ€μ λλ€. μ΄ κ°μ΄λμ μ€λͺ λ μ λ΅μ ꡬνν¨μΌλ‘μ¨ μΉμ¬μ΄νΈμ λ‘λ© μκ°μ ν¬κ² κ°μ νκ³ , μ¬μ©μ κ²½νμ ν₯μμν€λ©°, κΈλ‘λ² μμ₯μμ λΉμ¦λμ€ λͺ©νλ₯Ό λ¬μ±ν μ μμ΅λλ€. μλ, μ κ·Όμ±, μνν μ¬μ©μ κ²½νμ μ°μ μνμ¬ λ€μνκ³ μ μΈκ³μ μΈ μ¬μ©μμκ² κ³΅κ°μ μ»λ μΉμ¬μ΄νΈλ₯Ό λ§λμΈμ.
κΈ°μ΅νμΈμ, μ΅μμ μ κ·Ό λ°©μμ νΉμ μΉμ¬μ΄νΈμ μ¬μ©μμκ² λ§μΆ°μ Έ μμ΅λλ€. νμμ λ§λ μ΅μ μ κ²°κ³Όλ₯Ό μ»κΈ° μν΄ μ§μμ μΌλ‘ μ λ΅μ ν μ€νΈνκ³ κ°μ νμμμ€. μΉ μ±λ₯μ λν ν¬μλ λΉμ¦λμ€ μ±κ³΅μ λν ν¬μμ λλ€.